home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / comms / dis_pkt9.zip / DIS_PKT9.DOC < prev    next >
Text File  |  1991-11-02  |  14KB  |  358 lines

  1. File    DIS_PKT.DOC                        3 Nov 1991
  2. From:    Joe R. Doupnik
  3.     Utah State University
  4.     Logan Utah 84322
  5.     jrd@cc.usu.edu
  6.     (801) 750-2982 voice
  7.     (801) 750-2992 fax
  8.  
  9. What DIS_PKT.DOS does: It provides an Ethernet or a Token Ring Packet Driver
  10. interface to programs built to operate over Packet Drivers. It talks
  11. to NDIS (3Com/Microsoft) instead of to a lan board directly. It shares
  12. the board with NDIS users. We call this a "shim", sitting between the
  13. normal applications program (NetWare shells, TCP/IP, etc) and the more
  14. hardware specific portions (NDIS in this case).
  15.  
  16.     Packet Driver flavored applications        NDIS flavored applications
  17.         ||                    ||
  18.         -------------                ||
  19.         |  DIS_PKT  |                ||
  20.         -------------                ||
  21.         ||                    ||
  22.         ------------------------------------------
  23.         |           main module              |
  24.         |   NDIS    ........................      |
  25.         |        board specific driver(s)      |
  26.         -------------------------------------------
  27.                   ||
  28.             --------------------------------
  29.             | Ethernet/Token Ring board(s)    |
  30.             --------------------------------
  31.                   ||
  32.         =================================== Ethernet/Token Ring wire
  33.         
  34.  
  35. Material added to version 1.09 (as compared to v1.07) -
  36.  
  37.  o Support for using old Novell 802.3 packets on the wire while using Type
  38.    8137 packets to the application. The BYU Packet Driver Novell shell
  39.    kit requires Type 8137 packets be used by the shell. The keyword "NOVELL="
  40.    in the section [pktdrv] determines whether or not conversion occurs. If a 
  41.    y is placed after the NOVELL= phrase then conversion occurs:
  42.     novell = y        (case independent)
  43.    This option provides the same feature as the "-n" option of a regular
  44.    Packet Driver from the Clarkson collection.
  45.    Conversion does not occur if the right hand side is not a y, nor if the 
  46.    entire line is omitted.
  47.    Conversion occurs only if the NDIS driver uses Ethernet 802.3 packets; this
  48.    also means dis_pkt provides a Packet Driver Class 1 interface to apps.
  49.  
  50.  o Support for Ethernet 802.3 with 802.2 headers and Token Ring 802.5 NDIS 
  51.    drivers, as Packet Driver Class 11 and 3, respectively. The NOVELL= option
  52.    does not apply to these boards. Dan Lanciani of Harvard added this part.
  53.  
  54.  
  55.  
  56. First sample PROTOCOL.INI file:
  57.  
  58. [protocol manager]
  59.     drivername = PROTMAN$
  60.  
  61. [pktdrv]            <-- name of this driver entry
  62.   drivername = pktdrv$        <-- formal driver name
  63.   bindings = wd8003xmac        <-- use your board's NDIS driver here
  64.   intvec = 0x60            <-- Packet Driver Int, 60h..7fh
  65.   chainvec = 0x66        <-- daisy chained Pkt Drvr Int, unused
  66.   novell = y            <-- Optional, if present and y(es) then
  67.                     convert between old Novell 802.3 pkts
  68.                     on the wire and Type 8137 for the app.
  69.                     Omitting this line or using any other
  70.                     response turns off the conversion; 
  71.                     default is no conversion.
  72.  
  73. [attiso]
  74.   drivername = ATTISO$        <-- Another NDIS client
  75.   bindings = wd8003xmac        <-- bound to the same harware driver
  76.   nsess = 5
  77.   ncmds = 14
  78.   use_emm = n
  79.  
  80. Western Digital EtherCard PLUS Family Adapter    <-- Ethernet board
  81. [wd8003xmac]                    <-- its ndis driver
  82.     drivername = MACWD$
  83.     irq = 7
  84.     ramaddress = 0xCA00
  85.     iobase = 0x280
  86.     receivebufsize = 1536    <-- make this a full Ethernet pkt
  87.  
  88.  
  89.  
  90.  
  91. Sample section of CONFIG.SYS (StarGROUP material is not required):
  92.  
  93. device=c:\lanman\protman.sys /i:c:\lanman    <-- must be first
  94. device=c:\lanman\macwd.dos            <-- WD8003E driver
  95. device=c:\lanman\dis_pkt.dos            <-- Pkt Driver (this program)
  96. device=c:\lanman.dos\drivers\attload.dos /Y    <-- StarGROUP NDIS 
  97. device=c:\lanman.dos\drivers\attiso\attiso.dos    <-- StarGROUP NDIS
  98. device=c:\qemm\loadhi.sys /r:1 e:\pctcp\ifcust.sys  <-- PC/TCP stuff
  99. device=c:\qemm\loadhi.sys /r:4 e:\pctcp\ipcust.sys  <-- etc
  100.  
  101.  
  102.  A second, more elaborate example, with names easier to type. We start with
  103. file PROTOCOL.INI. Note that semicolons start comment lines.
  104.  
  105. ; This is a sample protocol.ini file listing three Ethernet boards:
  106. ;    attcsma.dos is an AT&T StarLAN 10 EN100
  107. ;    elnkii.dos  is a 3Com 3C503
  108. ;    wd8003.dos  is a Western Digital WD8003E
  109. ; Only one board will be selected but the other two are present.
  110.  
  111. [protocol manager]
  112.     drivername = PROTMAN$
  113.  
  114. ; Packet Driver protocol users tie in here
  115. [pktdrv]
  116.     drivername = pktdrv$
  117.     bindings = attcsma
  118. ;    bindings= elnkii
  119. ;    bindings = wd8003
  120.     intvec = 0x60
  121. ;    chainvec = 0x66        ; chaining to another Packet Driver is unused
  122.     novell = no        ; do not convert packet types this time
  123.  
  124. ; AT&T StarGROUP protocol stack ties in here via name ATTISO$
  125. [attiso]
  126.     drivername = ATTISO$
  127.     bindings = attcsma
  128. ;    bindings = elnkii
  129. ;    bindings = wd8003
  130.     nsess = 5
  131.     ncmds = 14
  132.     use_emm = n
  133.  
  134. ;Western Digital EtherCard PLUS Family Adapter, WD8003E in this case
  135. [wd8003]
  136.     drivername = MACWD$
  137.     irq = 7
  138.     ramaddress = 0xCA00
  139.     iobase = 0x280
  140.     receivebufsize = 1536
  141. ;    maxtransmits = 6
  142. ;    receivebuffers = 6
  143. ;    receivechains = 6
  144.  
  145. ; 3Com Etherlink II, 3C503
  146. [elnkii]
  147.     drivername = ELNKII$
  148.     ioaddress = 0x350
  149.     interrupt = 5
  150.     transceiver = onboard
  151.     maxtransmits = 12
  152.     xmitbufs = 1
  153.  
  154. ; AT&T StarLAN 10 EN100
  155. [attcsma]
  156.     drivername = ATTCSMA$
  157.     board_type = 2
  158.     irq = 2
  159.     ioaddr = 0x360
  160.     daram = 0xD000
  161.  
  162. ; End of file protocol.ini
  163.  
  164. Fragment of config.sys for the second example. Note three .dos board drivers.
  165.  
  166. device=c:\system\ramdrive.sys 1024 512 128 /E
  167. device=c:\lanman\protman.sys /i:c:\lanman.dos\drivers\star10en
  168. device=c:\lanman\attcsma.dos
  169. device=c:\lanman\elnkii.dos
  170. device=c:\lanman\macwd.dos
  171. device=c:\lanman\dis_pkt.dos
  172. device=c:\lanman.dos\drivers\attload.dos /Y
  173. device=c:\lanman.dos\drivers\attiso\attiso.dos
  174. device=c:\qemm\loadhi.sys /r:1 e:\pctcp\ifcust.sys
  175. device=c:\qemm\loadhi.sys /r:4 e:\pctcp\ipcust.sys
  176. device=c:\qemm\loadhi.sys /r:4 c:\netdev.sys
  177. shell=c:\command.com  /p /e:800
  178.  
  179. It seems to be necessary to run NETBIND.EXE to get all this to be active.
  180. Some Lan Manger network startup routines run Netbind implicitly.
  181.  
  182.  
  183. Copyright notice and disclaimer from the beginning of the source code
  184. file dis_pkt.asm:
  185.  
  186. ; DIS_PKT.ASM - Adapter provides Packet Driver v1.09 interface over NDIS.
  187. ; Version 1.07  18 May 1991  by Joe R. Doupnik, Utah State Univ.
  188. ; Version 1.08  9 Aug 1991 by Dan Lanciani, ddl@harvard.harvard.edu
  189. ; Version 1.09  3 Nov 1991 by Joe R. Doupnik, Utah State Univ.
  190. ; Copyright (C) 1988 - 1991 FTP Software, Inc.
  191.  
  192. This unmodified source file and it's executable form may be used and
  193. redistributed freely.  The source may be modified, and the source or
  194. executable versions built from the modified source may be used and
  195. redistributed, provided that this notice and the copyright displayed by
  196. the exectuable remain intact, and provided that the executable displays
  197. an additional message indicating that it has been modified, and by whom.
  198.  
  199. FTP Software Inc. releases this software "as is", with no express or
  200. implied warranty, including, but not limited to, the implied warranties
  201. of merchantability and fitness for a particular purpose.
  202.  
  203. USE AT YOUR OWN RISK.
  204.  
  205. To build, using Microsoft MASM 5 or later, LINK 3.64 or later, and EXE2BIN:
  206.  
  207. masm dis_pkt;
  208. link dis_pkt;
  209. exe2bin dis_pkt.exe dis_pkt.dos
  210. del dis_pkt.exe
  211. del dis_pkt.obj
  212.  
  213.  
  214.  
  215. Here is an excerpt from the formal NDIS v2 specification document by 3Com
  216. and Microsoft concerning what goes into the PROTOCOL.INI file.
  217.  
  218.  PROTOCOL.INI
  219.  The PROTOCOL.INI file stores configuration and binding
  220.  information for all the protocol and MAC modules in the system.
  221.  The file uses the same general format as the LANMAN.INI file.  It
  222.  consists of a series of named sections, where the section name is
  223.  in fact the module name from a module characteristics table.
  224.  Below the bracketed module name is a set of configuration
  225.  settings for the module in name=value format.
  226.  For example:
  227.  
  228.  [MYNetBIOS]
  229.  Drivername = NetBIOS$
  230.  Bindings = ETHERCARD
  231.  MaxNCBs = 16
  232.  MaxSessions = 32
  233.  MaxNames = 16
  234.  
  235.  The rules for PROTOCOL.INI contents are:
  236.  
  237.  o Bracketed module name.  Must be the name of a protocol or MAC
  238.    module, e.g. [MYNetBIOS].  This is the name of the module as
  239.    defined in that module's characteristics table.  The name must
  240.    be 15 characters or less (not counting the brackets).  Mixed
  241.    case may be used but the Protocol Manager will convert it to
  242.    uppercase when it reads the file into memory.
  243.  
  244.  o Drivername = <device driver name>.  This parameter is required
  245.    for all device driver modules.  It defines the name of the OS/2
  246.    or DOS device driver that the module is contained in.  Note
  247.    that a single device driver name may be mentioned by several
  248.    sections of the PROTOCOL.INI file, if the driver contains
  249.    multiple logical modules.  The Drivername parameter is the
  250.    recommended method by which a module searches for its module
  251.    section in the PROTOCOL.INI file to get its configuration
  252.    parameters.  This allows the module to find all relevant module
  253.    sections based on a single name intrinisic to the module
  254.    independent of the particular bracketed module name used in the
  255.    PROTOCOL.INI file.  This keyword is also required for DOS
  256.    dynamic modules like TSRs or transient application modules.
  257.    Although there is no driver name instrinsically assigned to
  258.    such modules it is required that a unique name be assigned to
  259.    this keyword for such modules anyway.  In this way the same
  260.    search mechanism used by device drivers can be used by dynamic
  261.    DOS modules to find their relevant module sections in
  262.    PROTOCOL.INI.
  263.  
  264.  o Bindings = <module name> | <module name>,<module name>, . . .
  265.    This parameter is optional for protocol modules.  It is not
  266.    valid for MAC modules.  If present, it is used by the protocol
  267.    module to determine what MAC modules it will ask to bind to.
  268.    (In other words, changing this parameter in the PROTOCOL.INI
  269.    file can reconfigure a protocol to bind to a different MAC.).
  270.    The Bindings parameter may be omitted if the protocol driver
  271.    software is preconfigured to bind to a particular MAC, or if
  272.    the system will only contain one MAC and one static protocol
  273.    module.  In the latter case (only in static mode), the Protocol
  274.    Manager by default will ask the one static protocol to bind to
  275.    the one MAC.
  276.  
  277.  o Other keywords and parameters.  Any other keyword=value
  278.    statements are module specific.  Keyword names must be 15
  279.    characters or less.  They may be mixed case but are converted
  280.    to uppercase when read by the Protocol Manager.  Note that
  281.    keyword names are unique within the scope of each <module name>
  282.    section and can appear within the section in any order.
  283.  
  284.  o Whitespace around the equals sign is not significant, nor is
  285.    trailing white space on the line.  Except for this leading and
  286.    trailing white space, all other characters of the value string
  287.    are taken verbatim.
  288.  
  289.  o A list of 0 or more parameters can appear to the right of the
  290.    equals sign.  If there are no parameters the equals sign can be
  291.    optionally omitted.  A parameter is terminated by a space, tab,
  292.    comma, or semicolon.  No parameters are interpreted by the
  293.    Protocol Manager.
  294.  
  295.  o A parameter can either be up to a 31-bit signed numeric value
  296.    or a string of any length.
  297.  
  298.  o A numeric parameter can be expressed either in decimal or
  299.    hexadecimal format.  All numeric parameters must start with the
  300.    characters '0' through '9' or by a + or - followed by the '0'
  301.    to'9' character.  A hexadecimal parameter must start with '0x'
  302.    or '0X' and use valid hexadecimal digits.  A non-hexadecimal
  303.    numeric parameter is treated as decimal integer.  A parameter
  304.    not surrounded by quotes and starting with 0 to 9 or + and -
  305.    followed by 0 to 9 will be assumed to be a numeric parameter.
  306.  
  307.  o A string is a parameter which either starts with a non-numeric
  308.    character or is surrounded with quotes ("....").  The string is
  309.    preserved in the memory image as it appears in PROTOCOL.INI.
  310.  
  311.  o A line starting with a semicolon in column 1 is a comment and
  312.    is ignored.  Blank lines are ignored too.
  313.  
  314.  o Lines may be as long as required.  Continuation lines are not
  315.    supported.  Lines end with CR LF.
  316.  
  317.  o Tabs, formfeeds, and spaces are considered to be white space.
  318.  
  319.  The Protocol Manager supports an optional section with optional
  320.  keywords defined below:
  321.  
  322.  [PROTMAN]
  323.  Drivername = PROTMAN$
  324.  Dynamic = YES or NO
  325.  PRIORITY = prot1, prot2, ...
  326.  Bindstatus = YES or NO
  327.  
  328.   
  329.  The bracketed module name can be any valid name as long as it is
  330.  unique within this PROTOCOL.INI.  Drivername is required and must be
  331.  assigned PROTMAN$, identifying the section as belonging to the
  332.  Protocol Manager.  None of the entries are case-sensitive.
  333.  
  334.  The DYNAMIC keyword is optional.  It defaults to NO if not present.
  335.  If set to NO, the Protocol Manager operates only in the static mode
  336.  and does not support dynamic protocol drivers.  If set to YES, the
  337.  Protocol Manager operates in the dynamic mode and supports both
  338.  static and dynamic binding.
  339.  
  340.  The PRIORITY keyword is optional.  If absent, then the VECTOR uses
  341.  default demultiplexing priority if multiple protocol drivers are
  342.  bound to the same MAC (see Vector Demultiplexing in Chapter 7).  If
  343.  present, the parameters on the right-hand side are presumed to be a
  344.  list of protocol module names, highest priority first.  The VECTOR
  345.  prioritizes protocol drivers for demultiplexing (if necessary)
  346.  according to their order in the list, and packets are offered to the
  347.  first protocol driver listed first.  Protocol drivers not listed are
  348.  assigned default priority AFTER those listed.  It is not necessary
  349.  that a protocol driver ever bind for it to be listed here.
  350.  
  351.  The BINDSTATUS keyword is optional.  If absent, then the BindStatus
  352.  command is not supported by the Protocol Manager.  If set to YES,
  353.  then BindStatus is supported by the Protocol Manager.  The default
  354.  disable condition is a memory optimization feature primarily for DOS
  355.  environments.
  356.  
  357. ;;;;;;;;;;; End of file DIS_PKT.DOC
  358.